/**
 * Array.of()方法会将它的任意类型的多个参数放在一个数组里并返回。
 * 用于将一组值，转换为数组,主要目的，是弥补数组构造函数Array()的不足
 */


Array.of(42);
Array.of(1, 2, 3);
Array.of(undefined);

//如果原生不支持的话，在其他代码执行之前一下代码会创建Array.of()
if (!Array.of) {
    Array.of = function () {
        return Array.prototype.slice.call(arguments); //arguments  不需要明确的指出参数名
    };
}
var arr = [1, 3, 4];
var sz=[5,6,7]
var a = Array.prototype.slice.call(sz); //Array.prototype.slice从数组中'借用'slice方法   call方法作用:可以改变函数的调用方式
console.log(a.slice());
console.log(a)

/**
 * 块极作用域 let 和const
 * @param vip
 * @returns {number}
 */
function test(vip){
    var amount=0;
    if (vip) {
        var amount = 1
    }
    { // 让块来的更疯狂
        var amount = 100
        {
            var amount = 1000
        }
    }
    return amount
}
console.log(test(true));
function test1(vip){
    var amount=0;
    if (vip) {
        let amount = 1
    }
    { // 让块来的更疯狂
        let amount = 100
        {
            let amount = 1000
        }
    }
    return amount
}
console.log(test1(true));

function test2(vip){
    const amount=0;
    if(vip){
        const amount=1;
    }
    {
     const amount=100;
        {
            const amount=1000;
        }
    }
    return amount;
}
console.log(test2(true));